# Requester

### Описание

Пример расширения с описанием содержимого объекта **chrome** для различных компонентов расширения при включении всех 
разрешений (permissions) в файле _manifest.json_

### Технологии

* JavaScript
* Chrome API
* Chrome DevTools

### Установка

1. Загрузить zip-архив репозитория или клонировать репозиторий
2. Распаковать архив
3. Открыть браузер Google Chrome и перейти в настройки расширений путем открытия в строке ввода url:

```
chrome://extensions/
```

4. В верхней правой части экрана включить радиобаттон: 'Режим разработчика'
5. В верхней левой части экрана нажать кнопку 'Загрузить распакованное расширение' и указать путь к папке '/extension'
   из п.2

### Описание работы

В папке './other/' в подпапках содержатся JSON с описанием содержимого объекта **chrome** в разных компонентах.
Для получения данных необходимо ипользовать блок кода из секции **Дополнительно**.

### Дополнительно

Код для получения содержимого объекта:
```
const PARAM_1 = 'getobjectallscoupe'
const PARAM_2 = 'getobjectkeys'
const PARAM_3 = 'getlocalandglobalvariables_true'
const PARAM_4 = 'getlocalandglobalvariables_false'
function getObjectData(operation, module, obj, objName) {
    let name
    let text
    let ext = '.json'
    const UNDERSCORE = '_'

    switch(operation) {
      case 'getobjectallscoupe':
        name = module + UNDERSCORE + 'getobjectallscoupe' + UNDERSCORE + objName + ext
        text = Service.getObjectAllScoupe(obj)
        break
      case 'getobjectkeys':
        name = module + UNDERSCORE + 'getobjectkeys' + UNDERSCORE + objName + ext
        text = Service.getObjectKeys(obj)
        break
      case 'getlocalandglobalvariables_true':
        name = module + UNDERSCORE + 'getlocalandglobalvariables_true' + UNDERSCORE + objName + ext
        text = Service.getLocalAndGlobalVariables(obj, true)
        break
      case 'getlocalandglobalvariables_false':
        name = module + UNDERSCORE + 'getlocalandglobalvariables_false' + UNDERSCORE + objName + ext
        text = Service.getLocalAndGlobalVariables(obj, false)
        break
        default:
            throw new Error('Попытка вызвать неизвестный метод')
    }
    console.log('name=' + name)
    Service.download(name, Service.jsonStringify(text))
}
getObjectData(PARAM_1, module, chrome, 'chrome')
getObjectData(PARAM_2, module, chrome, 'chrome')
getObjectData(PARAM_3, module, chrome, 'chrome')
getObjectData(PARAM_4, module, chrome, 'chrome')

//console.log('>2', Service.jsonStringify(Service.getObjectAllScoupe(chrome)))
//console.log('>3', Service.jsonStringify(Service.getObjectKeys(chrome)))
//console.log('>4', Service.getLocalAndGlobalVariables(chrome, true))
//console.log('>5', Service.getLocalAndGlobalVariables(chrome, false))
```